$body: #190d23;
$none: rgba(#fff, 0);
$card: #f5e3e3;
$blue: #302e9b;
$red: #b32b28;
$yellow: #bdb725;

html {
  font-size: 1vmin;
  background: radial-gradient(#bd243f, $body);
}

@media (min-width: 500px) {
  html {
    font-size: 5px;
  }
}

body {
  color: $body;
  font-size: 12rem;
  padding: 1rem;
  font-family: "Courier New";
  overflow: hidden;
}

screen {
  &,
  *,
  *:before,
  *:after {
    box-sizing: border-box;
    content: "";
    display: block;
    transform-style: preserve-3d;
    position: relative;
    perspective: 200rem;
  }
}

card {
  margin: auto;
  height: 96rem;
  width: 64.5rem;
  background: #fff;
  border-radius: 5rem;
  transform: translate3d(0, 0, 0) rotate3d(0, 0, 0, 0) rotate(1deg);
  position: relative;
  animation: rotate 3s linear;

  & *,
  & *:before,
  & *:after,
  &:before,
  &:after {
    position: absolute;
    left: 0;
    top: 0;
  }

  &:before,
  &:after {
    width: 100%;
    height: 100%;
    transform: translate3d(0, 0, -0.2rem) rotateY(180deg);
    border-radius: 5rem;
    animation: light 3s linear;
    box-shadow: inset 0 0 1rem rgba($body, 0.5);
    background-image: linear-gradient(
      to right bottom,
      rgba($body, 0.2),
      $none,
      rgba(#fff, 0.1),
      $none,
      rgba($body, 0.3)
    );
  }

  &:after {
    transform: translate3d(0, 0, 0.2rem) rotateY(0deg);
    animation: light 3s linear reverse;
  }
}

back {
  box-shadow: 0 0 0 1rem $blue, inset 0 0 0 1rem $blue, inset 0 0 0 2rem $card;
  border-radius: 1rem;
  height: 93%;
  width: 90%;
  border: 2rem solid $none;
  background-position: 0.9rem 0.99rem;
  background-image: repeating-linear-gradient(
      45deg,
      $none,
      $none 0.99rem,
      $blue 0.99rem,
      $blue 1.98rem
    ),
    repeating-linear-gradient(
      -45deg,
      $none,
      $none 0.99rem,
      $blue 0.99rem,
      $blue 1.98rem
    );
  transform: translate3d(0, 0, -0.1rem) rotateY(180deg);
  bottom: 0;
  right: 0;
  margin: auto;
}

shadow {
  margin: auto;
  height: 100rem;
  width: 70rem;
  background: radial-gradient($body, $none);
  background: $body;
  border-radius: 10rem;
  position: relative;
  animation: shadow 3s linear;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(0deg) skewY(0)
    scale(1);
  opacity: 0.2;
  box-shadow: 0 0 2vmin $body, 0 0 5vmin $body;
}

hoverspace {
  height: 100%;
  width: 50rem;
  position: absolute;
  transform: translate3d(0, 0, 50rem);
  top: 0;
  left: 0;
  right: 0;
  margin: auto;
  cursor: grab;

  &:hover ~ card {
    animation: rotatehover 3s linear;

    &:before,
    &:after {
      animation: lighthover 3s linear;
    }

    &:after {
      animation: lighthover 3s linear reverse;
    }
  }

  &:hover ~ shadow {
    animation: shadowhover 3s linear;
  }
}

@keyframes rotate {
  100% {
    transform: translate3d(0, 0, 0) rotate3d(1, 1, 0, -360deg) rotate(1deg);
  }
}

@keyframes rotatehover {
  100% {
    transform: translate3d(0, 0, 0) rotate3d(1, 1, 0, -360deg) rotate(1deg);
  }
}

@keyframes light {
  0%,
  100%,
  50% {
    background-color: $none;
  }

  25% {
    background-color: rgba($card, 0.7);
  }

  75% {
    background-color: $body;
  }
}

@keyframes lighthover {
  0%,
  100%,
  50% {
    background-color: $none;
  }

  25% {
    background-color: rgba($card, 0.7);
  }

  75% {
    background-color: $body;
  }
}

@keyframes shadow {
  25% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(-90deg);
    opacity: 0;
  }

  50% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(0);
    opacity: 0.2;
  }

  75% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(90deg);
    opacity: 0;
  }

  100% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(180deg)
      skewY(0);
    opacity: 0.2;
  }
}

@keyframes shadowhover {
  25% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(-90deg);
    opacity: 0;
  }

  50% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(0);
    opacity: 0.2;
  }

  75% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(90deg)
      skewY(90deg);
    opacity: 0;
  }

  100% {
    transform: translate3d(0, 90rem, -50rem) rotateX(90deg) rotate(180deg)
      skewY(0);
    opacity: 0.2;
  }
}

//king
front {
  transform: translate3d(0, 0, 0.1rem) rotateY(0deg);
  height: 100%;
  width: 100%;

  //number
  & > * {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;

    & > *:nth-of-type(1) {
      transform: translate3d(2rem, 13rem, 0) scaleX(0.7);
      height: 4rem;
      width: 4rem;
      background: $red;
      border-radius: 50%;
      box-shadow: 3.25rem 0 0 $red;

      &:before {
        transform: translate3d(1.7rem, 1.7rem, 0) rotate(45deg);
        background: $red;
        width: 4rem;
        height: 4rem;
      }

      &:after {
        content: "K";
        color: $red;
        transform: translate3d(0, -12rem, 0);
      }
    }
    //picture
    & > *:nth-of-type(2) {
      border: 0.5rem solid $blue;
      width: 68%;
      height: 79.5%;
      bottom: 0;
      right: 0;
      margin: auto;
      border-radius: 0.5rem;
      overflow: hidden;
      //crown
      & > *:nth-of-type(6) {
        background: $yellow;
        box-shadow: inset 0 0 0 0.1rem #fff, inset 0 0 0 0.6rem $blue;
        width: 30rem;
        height: 30rem;
        transform: translate3d(7rem, -23rem, 0) rotate(37deg) skewY(20deg);
        overflow: hidden;

        &:after {
          background: #fff;
          width: 40rem;
          height: 10rem;
          border-radius: 50%;
          transform: translate3d(4rem, 25.5rem, 0) rotate(-50deg);
          box-shadow: 0 0 0 1.5rem $body;
        }

        &:before {
          width: 1.5rem;
          height: 1.5rem;
          transform: translate3d(16.5rem, 26.5rem, 0) rotate(-1deg);
          background: $body;
          box-shadow: 0 0 0 1.5rem $yellow, 0 0 0 2rem $body, 5rem -5rem 0 $body,
            5rem -5rem 0 1.5rem $yellow, 5rem -5rem 0 2rem $body,
            10rem -10rem 0 $body, 10rem -10rem 0 1.5rem $yellow,
            10rem -10rem 0 2rem $body;
        }
      }
      //heart
      & > *:nth-of-type(8) {
        transform: translate3d(0.5rem, 2.5rem, 0) scaleX(0.7);
        height: 8rem;
        width: 8rem;
        background: $red;
        border-radius: 50%;
        box-shadow: 6.5rem 0 0 $red;

        &:before {
          transform: translate3d(3.25rem, 3.25rem, 0) rotate(45deg);
          background: $red;
          width: 8rem;
          height: 8rem;
        }
      }
      //face
      & > *:nth-of-type(7) {
        width: 40rem;
        height: 20rem;
        transform: translate3d(-0.5rem, 6.5rem, 0);
        border-radius: 50%;
        overflow: hidden;

        &:after {
          width: 5rem;
          height: 14rem;
          border-radius: 3rem;
          transform: translate3d(21.5rem, -1rem, 0) rotate(-20deg) skewY(-10deg);
          box-shadow: 0.4rem 0.4rem 0 $blue, 1rem 0.8rem 0 #fff,
            1.4rem 1.2rem 0 $blue, 2rem 1.6rem 0 #fff, 2.4rem 2rem 0 $blue,
            3rem 2.4rem 0 #fff, 3.4rem 2.8rem 0 $blue, 4rem 3.2rem 0 #fff,
            4.4rem 3.6rem 0 $blue;
        }
        //spiral
        &:before {
          width: 1rem;
          height: 1rem;
          background: #fff;
          transform: translate3d(13.35rem, 7.85rem, 0);
          border-radius: 50%;
          box-shadow: 0.4rem 0 0 $blue, 0.4rem 0.4rem 0 0.3rem #fff,
            0.1rem 0.4rem 0 0.6rem $blue;
        }
        //hair
        & > *:nth-of-type(1) {
          width: 3rem;
          height: 14rem;
          border-radius: 2rem;
          transform: translate3d(15rem, -4rem, 0) rotate(25deg);
          box-shadow: 0.4rem 0.4rem 0 $blue, 1rem 0.8rem 0 #fff,
            1.4rem 1.2rem 0 $blue, 2rem 1.6rem 0 #fff, 2.4rem 2rem 0 $blue,
            3rem 2.4rem 0 #fff, 3.4rem 2.8rem 0 $blue, 4rem 2.3rem 0 #fff,
            4.4rem 2.6rem 0 $blue, 5rem 2rem 0 #fff, 5.4rem 2.1rem 0 $blue;
          //face shape
          &:after {
            background: #fff;
            width: 10.8rem;
            height: 12rem;
            border-radius: 5rem 0 60% 2rem / 1.25rem 0 60% 5rem;
            transform: translate3d(1.5rem, 1rem, 0) rotate(-29deg);
            box-shadow: -0.4rem -0.3rem 0 $blue;
          }
          //big beardy bit
          &:before {
            width: 7rem;
            height: 10rem;
            border-radius: 2.5rem;
            transform: translate3d(6.5rem, 4rem, 0) rotate(-55deg);
            border: 0.4rem solid #fff;
            box-shadow: 0 0 0 0.4rem $blue, inset 0 0 0 0.4rem $blue,
              inset 0.5rem 0 0 0.4rem #fff, inset 0.9rem 0 0 0.4rem $blue,
              inset 1.4rem 0.2rem 0 0.4rem #fff,
              inset 1.8rem 0.2rem 0 0.4rem $blue,
              inset 2.3rem 0.4rem 0 0.4rem #fff,
              inset 2.7rem 0.4rem 0 0.4rem $blue,
              inset 3.2rem 0.8rem 0 0.4rem #fff,
              inset 3.6rem 0.8rem 0 0.4rem $blue, inset -0.5rem 0 0 0.4rem #fff,
              inset -0.9rem 0 0 0.4rem $blue, inset -1.4rem 0.2rem 0 0.4rem #fff,
              inset -1.8rem 0.2rem 0 0.4rem $blue,
              inset -2.3rem 0.4rem 0 0.4rem #fff,
              inset -2.7rem 0.4rem 0 0.4rem $blue;
          }
        }
        //more curls
        & > *:nth-of-type(2) {
          width: 1.5rem;
          height: 1.5rem;
          background: #fff;
          transform: translate3d(25rem, 10.65rem, 0);
          border-radius: 50%;
          box-shadow: 0.4rem 0 0 $blue, 0.4rem 0.4rem 0 0.4rem #fff,
            0.1rem 0.4rem 0 0.6rem $blue;

          &:after {
            width: 1rem;
            height: 1rem;
            background: #fff;
            transform: translate3d(-1.5rem, 1.2rem, 0) rotate(-70deg);
            border-radius: 50%;
            box-shadow: -0.4rem 0 0 $blue, -0.4rem 0.4rem 0 0.4rem #fff,
              -0.1rem 0.4rem 0 0.6rem $blue;
          }

          &:before {
            width: 0.75rem;
            height: 0.75rem;
            background: #fff;
            transform: translate3d(-11.25rem, -7rem, 0) rotate(-50deg);
            border-radius: 50%;
            box-shadow: 0.4rem 0 0 $blue, 0.4rem 0.4rem 0 0.3rem #fff,
              0.1rem 0.4rem 0 0.6rem $blue;
          }
        }
        //face
        //eyebrows
        & > *:nth-of-type(4) {
          width: 3rem;
          height: 1rem;
          border-radius: 50%;
          border-top: 0.4rem solid $blue;
          transform: translate3d(21rem, 1rem, 0);
          box-shadow: -5rem 0.4rem 0 #fff, -5.5rem 0 0 $blue;
          //none
          &:after {
            width: 0.3rem;
            height: 2rem;
            background: $blue;
            transform: translate3d(-2.65rem, 0, 0) rotate(-15deg);
          }

          &:before {
            width: 2.5rem;
            height: 5rem;
            border-radius: 2rem;
            transform: translate3d(-2.5rem, 1.25rem, 0) rotate(15deg)
              skewY(-10deg);
            box-shadow: -0.2rem 0.3rem 0 $blue;
            background: #fff;
          }
        }
        //eye1
        & > *:nth-of-type(5) {
          width: 0.6rem;
          height: 0.6rem;
          background: $blue;
          border-radius: 50%;
          box-shadow: 0 0 0 0.5rem #fff, 0 0 0 0.8rem $blue;
          transform: translate3d(21.5rem, 3rem, 0) rotate(5deg);

          &:before {
            width: 3.5rem;
            height: 3rem;
            border-radius: 50%;
            border-top: 0.4rem solid $blue;
            transform: translate3d(-1rem, -0.4rem, 0);
            box-shadow: 0 -0.8rem 0 -0.4rem #fff;
          }

          &:after {
            width: 1.5rem;
            height: 0.75rem;
            border-radius: 50%;
            box-shadow: -0.2rem 0.2rem 0 0 $blue;
            transform: translate3d(-0.75rem, 1rem, 0) rotate(20deg);
          }
        }
        //eye2
        & > *:nth-of-type(6) {
          width: 0.6rem;
          height: 0.6rem;
          background: $blue;
          border-radius: 50%;
          box-shadow: 0 0 0 0.5rem #fff, 0 0 0 0.8rem $blue;
          transform: translate3d(16.6rem, 2.75rem, 0) rotate(5deg);

          &:before {
            width: 3.5rem;
            height: 3rem;
            border-radius: 50%;
            border-top: 0.4rem solid $blue;
            transform: translate3d(-1rem, -0.4rem, 0);
            box-shadow: 0 -0.8rem 0 -0.4rem #fff;
          }

          &:after {
            width: 1rem;
            height: 0.75rem;
            border-radius: 50%;
            box-shadow: 0 0.2rem 0 0 $blue;
            transform: translate3d(-0.75rem, 1rem, 0) rotate(30deg);
          }
        }
        //nose
        & > *:nth-of-type(3) {
          width: 2rem;
          height: 1.25rem;
          background: #fff;
          border-radius: 50%;
          box-shadow: 0.3rem 0 0 0 $blue;
          transform: translate3d(18.75rem, 6rem, 0) rotate(45deg);

          &:before {
            width: 4rem;
            height: 4rem;
            transform: translate3d(0.25rem, 0.25rem, 0);
            box-shadow: -0.2rem -0.2rem 0 $blue;
            border-radius: 1rem;
          }
          //chin
          &:after {
            width: 1rem;
            height: 1rem;
            box-shadow: 0 -0.4rem 0 $blue;
            transform: translate3d(3.25rem, 3.25rem, 0) rotate(-45deg);
            border-radius: 50%;
          }
        }
        //mouth
        & > *:nth-of-type(7) {
          width: 0.6rem;
          height: 0.6rem;
          background: $blue;
          border-radius: 50%;
          box-shadow: 1rem 0 0 0 $blue, 0.5rem 0.3rem 0 0 $blue;
          transform: translate3d(18.75rem, 8.5rem, 0);

          &:after {
            width: 3.2rem;
            height: 0.5rem;
            box-shadow: 0 -0.2rem 0 $blue;
            transform: translate3d(-0.7rem, 0.4rem, 0);
            border-radius: 50%;
          }
        }
      }
      //hand
      & > *:nth-of-type(5) {
        transform: translate3d(36rem, 5rem, 0);
        border: 0.3rem solid $blue;
        width: 2rem;
        height: 3.85rem;
        border-radius: 1rem;
        background: #fff;
        box-shadow: 0.75rem 0.3rem 0 -0.3rem #fff, 0.75rem 0.3rem 0 $blue,
          1.75rem 0.5rem 0 -0.5rem #fff, 1.75rem 0.5rem 0 -0.2rem $blue,
          2.65rem 0.6rem 0 -0.8rem #fff, 2.65rem 0.6rem 0 -0.4rem $blue;

        &:before {
          transform: translate3d(-1rem, -0.75rem, 0);
          border: 0.5rem solid $blue;
          border-bottom: none;
          width: 1.65rem;
          height: 4rem;
          border-radius: 1rem 1rem 0 0;
          background: #fff;
        }

        &:after {
          transform: translate3d(0, 3.5rem, 0);
          width: 2rem;
          height: 2rem;
          border-radius: 0 100% 0 0;
          box-shadow: 0.3rem -0.3rem 0 $blue;
        }
      }
      //sword handle
      & > *:nth-of-type(4) {
        transform: translate3d(35.25rem, 6.5rem, 0);
        border: 0.5rem solid $blue;
        width: 4.75rem;
        height: 5.5rem;
        border-radius: 50%;
        background: #fff;

        &:before {
          transform: translate3d(4rem, -0.1rem, 0);
          width: 2rem;
          height: 2rem;
          border-radius: 100%;
          box-shadow: 0 0 0 0.5rem $blue, inset 0 -0.25rem 0 0.5rem $yellow,
            inset 0 -0.5rem 0 1rem $blue;
          background: $yellow;
        }

        &:after {
          transform: translate3d(-1.5rem, -3rem, 0);
          width: 1rem;
          height: 7rem;
          border-radius: 0.5rem;
          box-shadow: 0 0 0 0.5rem $blue;
          background: $yellow;
        }
      }
      //sword blade
      & > *:nth-of-type(3) {
        transform: translate3d(31.25rem, 6rem, 0);
        border: 0.5rem solid $blue;
        width: 3rem;
        height: 3rem;
        box-shadow: inset 0 0 0 0.5rem #fff, inset 0 0 0 1rem $blue,
          -3rem 0 0 0 $blue;

        &:before {
          transform: translate3d(4rem, 5rem, 0);
          width: 3.5rem;
          height: 1.5rem;
          border-radius: 50%;
          box-shadow: 0 0 0 0.5rem $blue;
          background: $yellow;
        }

        &:after {
        }
      }
      //arm
      & > *:nth-of-type(1) {
        transform: translate3d(30rem, 13rem, 0);
        height: 20rem;
        width: 20rem;
        background: $yellow;

        &:before {
          border-radius: 50%;
          background: #fff;
          width: 10rem;
          height: 30rem;
          box-shadow: -0.4rem 0.4rem 0 0 $blue, -12.5rem -1rem 0 0rem #fff,
            -12rem -1rem 0 0rem $blue;
          transform: translate3d(9rem, -22rem, 0);
        }

        &:after {
          background: #fff;
          width: 30rem;
          height: 20rem;
          transform: translate3d(0rem, -20rem, 0);
        }

        & > *:nth-of-type(1) {
          background: $red;
          border: 0.5rem solid $blue;
          transform: translate3d(5rem, 9rem, 0) rotate(-40deg) skewY(-30deg);
          width: 10rem;
          height: 10rem;
          box-shadow: 0 0 0 1rem $yellow, 0 0 0 1.5rem $blue;
          z-index: -1;
          border-radius: 50% 0;

          &:before {
            background: $red;
            border: 0.5rem solid $blue;
            transform: translate3d(-4rem, -5.5rem, 0) rotate(20deg) skewY(0deg);
            width: 10rem;
            height: 10rem;
            box-shadow: 0 0 0 1rem $yellow, 0 0 0 1.5rem $blue;
            border-radius: 50% 0;
          }

          &:after {
            background: $blue;
            transform: translate3d(11.75rem, -11.75rem, 0) rotate(15deg)
              skewY(0deg);
            width: 10rem;
            height: 10rem;
            box-shadow: 0 0 0 0.5rem $yellow, 0 0 0 1rem $blue;
            border-radius: 50% 0;
          }
        }
      }
      //body
      & > *:nth-of-type(2) {
        border: 0.5rem solid $blue;
        transform: translate3d(-6.5rem, 16rem, 0);
        width: 56rem;
        height: 43rem;
        border-radius: 50% 48%;
        box-shadow: inset 0 0 0 1rem $yellow, inset 0 0 0 4.5rem $blue,
          inset 0 0 0 5rem $yellow, inset 0 0 0 5.5rem $blue;
        background: linear-gradient($red, $red 50%, #fff 50%, #fff);
        background-size: 100% 1rem;
        overflow: hidden;

        &:before {
          width: 2rem;
          height: 2rem;
          background: #bdb725;
          transform: translate3d(45.75rem, 31.4rem, 0);
          box-shadow: -2.5rem 2rem 0 0 $yellow, -5.5rem 4rem 0 0 $yellow;
        }

        &:after {
          width: 2rem;
          height: 2rem;
          background: $body;
          transform: translate3d(45.7rem, 31.3rem, 0) rotate(-45deg);
          box-shadow: inset 0 0 0 0.55rem $yellow,
            -3.25rem -0.25rem 0 -0.55rem $body, -3.25rem -0.25rem 0 0 $yellow,
            -6.75rem -1rem 0 -0.55rem $body, -6.75rem -1rem 0 0 $yellow;
        }

        & > *:nth-of-type(2) {
          width: 50rem;
          height: 60rem;
          border: 5rem solid #fff;
          border-left-width: 3rem;
          transform: translate3d(30rem, -9rem, 0);
          box-shadow: inset 0 0 0 0.5rem $blue, 0 0 0 0.5rem $blue;
          border-radius: 50%;
          overflow: hidden;

          &:before {
            width: 40rem;
            height: 31rem;
            background: $red;
            box-shadow: inset 5rem 14rem 0 0 $blue, inset 0 14.9rem 0 0 $yellow,
              inset 0 15.3rem 0 0 $blue;
            transform: translate3d(0, 0, 0);
          }

          &:after {
            width: 2rem;
            background: $yellow;
            height: 30rem;
            transform: translate3d(10.5rem, 0rem, 0);
            border: solid 0.5rem $blue;
          }

          & > *:nth-of-type(1) {
            width: 24rem;
            height: 24rem;
            border: 1rem solid $body;
            transform: translate3d(-15rem, 6rem, 0);
            border-radius: 50%;
            box-shadow: inset 0 0 0 1rem $yellow, inset 0 0 0 1.5rem $body,
              inset 0 0 0 3.5rem #fff, inset 0 0 0 4rem $body,
              inset 0 0 0 4.5rem $yellow, inset 0 0 0 5rem $body;
            background: linear-gradient($red, $red 50%, #fff 50%, #fff);
            background-size: 100% 1rem;

            &:before {
              width: 18rem;
              height: 18rem;
              border: 1rem dotted $red;
              bottom: 0;
              right: 0;
              margin: auto;
              border-radius: 50%;
            }

            &:after {
              width: 5rem;
              height: 5rem;
              transform: translate3d(29rem, 5rem, 0) rotate(45deg);
              background: $red;
              box-shadow: 0 0 0 0.4rem $blue, 0 0 0 0.9rem $yellow,
                0 0 0 1.1rem $blue, 0 0 0 1.6rem $yellow, 0 0 0 2rem $blue,
                4rem 4rem 0 0 $red, 4rem 4rem 0 0.4rem $blue,
                4rem 4rem 0 0.9rem $yellow, 4rem 4rem 0 1.1rem $blue,
                4rem 4rem 0 1.6rem $yellow, 4rem 4rem 0 2rem $blue,
                8rem 8rem 0 0 $red, 8rem 8rem 0 0.4rem $blue,
                8rem 8rem 0 0.9rem $yellow, 8rem 8rem 0 1.1rem $blue,
                8rem 8rem 0 1.6rem $yellow, 8rem 8rem 0 2rem $blue,
                -4rem -4rem 0 0 $red, -4rem -4rem 0 0.4rem $blue,
                -4rem -4rem 0 0.9rem $yellow, -4rem -4rem 0 1.1rem $blue,
                -4rem -4rem 0 1.6rem $yellow, -4rem -4rem 0 2rem $blue;
            }
          }
        }
        //inner shirt
        & > *:nth-of-type(1) {
          width: 16rem;
          height: 53rem;
          transform: translate3d(20rem, 0rem, 0);
          overflow: hidden;

          &:before {
            height: 20rem;
            width: 35rem;
            background: $red;
            transform: translate3d(-10rem, -10rem, 0) rotate(-45deg);
          }

          &:after {
            height: 5rem;
            width: 30rem;
            background: #fff;
            transform: translate3d(-10rem, 10rem, 0) rotate(-45deg);
            border: 0.5rem solid #fff;
            box-shadow: inset 0 0 0 0.4rem $blue, 0 0 0 0.4rem $blue;
            background: #fff;
            background-image: radial-gradient(
                $red 25%,
                $yellow 35%,
                $body 45%,
                transparent 0
              ),
              radial-gradient($red 25%, $yellow 35%, $body 45%, transparent 0);
            background-size: 6rem 6rem;
            background-position: 0 0, 3rem 3rem;
          }

          & > *:nth-of-type(1) {
            transform: translate3d(0rem, 18rem, 0);
            background: $blue;
            height: 5rem;
            width: 20rem;

            &:before {
              height: 20rem;
              width: 35rem;
              background: $red;
              transform: translate3d(-10rem, 15rem, 0) rotate(-45deg);
            }

            &:after {
              height: 5rem;
              width: 30rem;
              background: #fff;
              transform: translate3d(-10rem, 12rem, 0) rotate(-45deg);
              border: 0.5rem solid #fff;
              box-shadow: inset 0 0 0 0.4rem $blue, 0 0 0 0.4rem $blue;
              background: #fff;
              background-image: radial-gradient(
                  $red 25%,
                  $yellow 35%,
                  $body 45%,
                  transparent 0
                ),
                radial-gradient($red 25%, $yellow 35%, $body 45%, transparent 0);
              background-size: 6rem 6rem;
              background-position: 0 0, 3rem 3rem;
            }
          }
        }
        //decoration
        & > *:nth-of-type(3) {
          width: 50rem;
          height: 60rem;
          border: 2rem dotted $blue;
          transform: translate3d(31rem, -9rem, 0);
          border-radius: 50%;
        }
      }

      & > *:nth-of-type(9) {
        width: 50rem;
        height: 37rem;
        transform: translate3d(25rem, 19rem, 0);
        overflow: hidden;

        &:after {
          width: 50rem;
          height: 53rem;
          transform: translate3d(2rem, -8rem, 0);
          box-shadow: inset 0 0 0 0.5rem #302e9b, 0 0 0 1rem #fff;
          border-radius: 50%;
        }

        &:before {
          width: 15rem;
          background: $body;
          height: 2rem;
          transform: translate3d(8.5rem, 0, 0) skewX(-35deg);
          box-shadow: 0 0 0 0.5rem $blue, 0 0 0 1rem $body, 0 0 0 1.5rem $yellow;
        }
      }

      & > *:nth-of-type(12) {
        transform: translate3d(-1rem, 21.5rem, 0);
        width: 45rem;
        height: 32rem;
        border-radius: 50%;
        overflow: hidden;

        &:before {
          width: 20rem;
          height: 8rem;
          background: repeating-linear-gradient(
              -45deg,
              $blue,
              $blue 0.2rem,
              $none 0.2rem,
              $none 1rem
            ),
            $yellow;
          transform: translate3d(38rem, 19rem, 0);
          border: 0.5rem solid $blue;
        }

        &:after {
          width: 2.5rem;
          height: 5rem;
          transform: translate3d(33.5rem, 20.25rem, 0);
          background: $yellow;
          border: 0.4rem solid $blue;
          border-radius: 50%;
        }
      }
      // bottom hand
      & > *:nth-of-type(13) {
        transform: translate3d(28.5rem, 46rem, 0);
        border: 0.4rem solid $blue;
        border-top: none;
        width: 4.25rem;
        height: 2rem;
        border-radius: 1.5rem 0 100% 0.75rem;
        background: #fff;
        box-shadow: 0.75rem -1rem 0 $blue;

        &:before {
          transform: translate3d(-4rem, -2rem, 0);
          border: 0.4rem solid $blue;
          border-right: none;
          width: 5.5rem;
          height: 1.8rem;
          border-radius: 1rem 0 0 1rem;
          background: #fff;
          box-shadow: 0.7rem 1rem 0 -0.4rem #fff, 0.3rem 1.4rem 0 -0.4rem $blue,
            0.8rem -1.3rem 0 -0.5rem #fff, 0.8rem -1.3rem 0 -0.1rem $blue,
            1.8rem -2.3rem 0 -0.6rem #fff, 1.8rem -2.3rem 0 -0.2rem $blue;
        }

        &:after {
          transform: translate3d(1rem, -4.2rem, 0);
          width: 4rem;
          height: 4.5rem;
          border-radius: 0 100% 100% 0;
          border: 0.4rem solid $blue;
          border-left: none;
          border-bottom: none;
          background: #fff;
        }
      }
      // bottom wrist
      & > *:nth-of-type(10) {
        width: 10rem;
        height: 8rem;
        transform: translate3d(32.5rem, 40.5rem, 0);
        overflow: hidden;

        &:before {
          border-radius: 50%;
          transform: translate3d(-2.5rem, -2.5rem, 0);
          width: 7.5rem;
          height: 5rem;
          border: 0.5rem solid $blue;
          box-shadow: 0 0 0 1rem $yellow;
        }

        &:after {
          border-radius: 50%;
          transform: translate3d(-2.5rem, 5rem, 0);
          width: 7.5rem;
          height: 6rem;
          border: 0.5rem solid $blue;
          box-shadow: 0 0 0 1rem $yellow;
        }
      }
      //arm
      & > *:nth-of-type(11) {
        width: 10rem;
        height: 4rem;
        transform: translate3d(33.75rem, 42.2rem, 0) scaleY(0.7);
        overflow: hidden;

        &:before {
        }

        &:after {
          width: 2.5rem;
          height: 2.5rem;
          transform: translate3d(0rem, 0.5rem, 0) rotate(45deg);
          background: $blue;
          border: 0.75rem solid $yellow;
          box-shadow: 0 0 0 0.5rem $blue, 0 0 0 2rem $yellow;
        }
      }
    }
  }

  & > *:nth-of-type(2) {
    transform: rotate(180deg);

    & > *:nth-of-type(2) {
      & > *:nth-of-type(2) {
        &:before {
          transform: translate3d(45.75rem, 32.4rem, 0);
        }

        &:after {
          transform: translate3d(45.7rem, 32.3rem, 0) rotate(-45deg);
        }

        background: none;
        border: none;
        box-shadow: none;

        & > *:nth-of-type(1) {
          display: none;
        }
      }
    }
  }
}
